iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0

I s t i o

https://ithelp.ithome.com.tw/upload/images/20210927/20129515dnKFG56qSA.png

什麼是Istio

Istio是Google、IBM 和 Lyft一起開發的開源專案,Istio是希臘語,意思是起航或是帆船,跟kubernetes是有相關連的。

Istio 是 開源的服務網格 ,是這幾年來使用k8s的開發人員會常常聽到的組合 k8s + Istio,為什麼Istio那麼熱門~~因為它提供了不限語言平台,簡單的把應用程式網路功能自動化,Istio也支援目前檯面上的公有雲(ex eks,aks,gcp..etc)。

Istio是個超熱門開源專案,不管是排除issue或是更版的時間都很神速,以個人安裝版本,今年年初安裝時的istio 1.8.x到現在Istio 1.11.3 @ 2021/09/23..直接跨了三個小版號 /images/emoticon/emoticon02.gif,缺點就真的是追不完的更新QQ...不知道明年會不會有架構性的大改版..QQ。

使用Istio的好處

  • 提供一致的服務網路管理體驗 : 網路業者能統一管理旗下所有服務的網路,而不必增加開發人員負擔。
  • 運用 Istio 的優點保護服務 : 安全服務業者可輕鬆地實施服務對服務的安全防護機制,包括驗證、授權和加密。
  • 提高應用程式效能 : 實施最佳做法 (如發布初期測試版本),並深入瞭解應用程式,藉此找出應集中在哪些地方投入心力才能提升效能。

資料出處

Istio的特點

  • 安全性上面,使用TLS加密、身份認證和授權的cluster內部服務到服務的安全溝通
  • gRPC、WebSocket、http與tcp 的load balance,重點是gRPC..rrrrr我好興奮rrr
  • 可以透過route規則、重試、故障轉移和故障注入對流量行為做精細的設定
  • 支援存取控制、速率限制(ratelimit)和配額
  • 對cluster內的流量(ingress與egress)進行autoscaling、log和tracking

Istio 架構圖

還沒使用Istio前,service a需要寫設定連線到service b

使用後

圖片來源
service與sevice間的溝通都是透過envoy proxy進行處理,把溝通其他服務這層抽離出來,
service只做到邏輯處理,網路層一律使用envoy proxy統一處理。


圖片來源

Istio Component

Envoy

Istio預設使用Envoy作為proxy,而Envoy基於c++開發,所以基本上效能應該是沒什麼問題,不像某j..那吃的資源量/images/emoticon/emoticon01.gif,上面的架構圖就清楚看的出來,Envoy主要是協調服務的
Envoy proxy是使用sidecar的方式跟pod一起部署,sidecar就長的像下圖這樣子XD,istio就依附pod服務運行的意思

圖片來源

Envoy有下列特性

  • 動態服務發現(Dynamic service discovery)
  • 負載均衡(Load balancing)
  • TLS 終端(TLS termination)
  • HTTP/2 與 gRPC 代理(HTTP/2 and gRPC proxies)
  • 熔斷器(Circuit breakers)
  • 健康檢查(Health checks)
  • 基於百分比流量分割的分階段發佈(Staged rollouts with %-based traffic split)
  • 故障注入(Fault injection)
  • 豐富的指標(Rich metrics)

資料來源

Istiod

istio在1.5版後把原本獨立的componet整合成istod(d是daemon的意思),裡面包含了Pilot,CitadelGalley三個componet,從這例子就很明顯看的出來,istio就是個一言不合就大改的專案QQ

  • Pilot : 提供服務發現(Service Discovery)給Envoy使用,用於智慧路由的流量管理功能(ex:A/B 測試、金絲雀發佈..etc),日還有超時、重試、熔斷器等。
  • Citadel : 主要是做使用者跟服務間的認證與憑證管理,也可以充當憑證授權(CA),這樣子服務間的連線都是使用mTLS。
  • Galley : Istio的配置驗證、提取、處理和分發元件。

資料來源

以上為istio的簡簡簡述


上一篇
[DAY19]Ingress-k8s的海姆達爾
下一篇
[DAY21]Istio-手把手教安裝
系列文
k8s新手船長船難記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言